
/** 
*Copyright 2017 Yonyou Corporation Ltd. All Rights Reserved.
* This software is published under the terms of the Yonyou Software
* License version 1.0, a copy of which has been included with this
* distribution in the LICENSE.txt file.
*
* @Project Name : dmscloud.manage
*
* @File name : OrgPositionService.java
*
* @Author : yll
*
* @Date : 2017年4月6日
*
----------------------------------------------------------------------------------
*     Date       Who       Version     Comments
* 1. 2017年4月6日    yll    1.0
*
*
*
*
----------------------------------------------------------------------------------
*/
	
package com.yonyou.cyxdms.sysAuth.service.service.orgposition;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yonyou.cyxdms.sysAuth.service.dto.orgposition.OrgPositionPcDTO;
import com.yonyou.cyxdms.sysAuth.service.entity.OrgPositionPO;
import com.yonyou.cyxdms.sysAuth.service.vo.orgposition.OrgPositionDepartVO;
import com.yonyou.cyxdms.sysAuth.service.vo.orgposition.OrgPositionPageVO;
import com.yonyou.cyxdms.sysAuth.service.vo.role.RoleVO;

import java.util.List;
import java.util.Map;

/**
* 职位service
* @author yll
* @date 2017年4月6日
*/

public interface OrgPositionService {

    public IPage<OrgPositionPageVO> queryorgpositiondms(Page<OrgPositionPageVO> page, Map<String,Object> queryCondition);
    /**
     * 根据职务id获取所挂角色
     *
     * @author dengqiang
     * @since 2019/7/11
     */
    public List<RoleVO> getOrgPositionRoleById(Long id);
    /**
     * 根据职务id获取所挂组织
     *
     * @author dengqiang
     * @since 2019/7/11
     */
    public List<OrgPositionDepartVO> getOrgPositionDepartById(Long id);
    /**
     * 新增职务
     *
     * @author dengqiang
     * @since 2019/7/11
     */
    public Integer addOrgPosition(OrgPositionPcDTO ptdto);

    public OrgPositionPO getOrgPositionById(Long id);

    public String findRoleIdsByPositionId(Long id);

    public void adduserpositionsperdms(Long userId, String positionIds, Integer permisionType, List<String> maintain, List<String> accessories);

    /**
     * 置空职位权限
     */
    public void emptyPositionById(Long positionId, Integer permissionType);

    IPage<OrgPositionPageVO> getorgPositionType(Page<OrgPositionPageVO> page, Map<String, Object> param);

    /**
     * 根据id修改职位信息
     *
     * @param id
     * @param ptdto
     * @return void
     * @author dengqiang
     * @since 2019/8/5
     */
    public void modifyOrgPosition(Long id, OrgPositionPcDTO ptdto);
}


